package com.yuuzy.mapper;

import com.github.pagehelper.Page;
import com.yuuzy.annotation.AutoFill;
import com.yuuzy.dto.PatientPageQueryDTO;
import com.yuuzy.entity.Patient;
import com.yuuzy.enumeration.OperationType;
import com.yuuzy.vo.PatientPageQueryVO;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

@Mapper
public interface PatientBasicInfoMapper {
	/**
	 * 新增患者基础信息
	 *
	 * @param patient
	 */
	@AutoFill(OperationType.INSERT)
	void insertPatientBasic(Patient patient);


	/**
	 * 根据id删除患者基础信息
	 *
	 * @param ids
	 */
	void deletePatientBasicByIds(List<Integer> ids);

	/**
	 * 修改患者基础信息
	 *
	 * @param patient
	 */
	@AutoFill(OperationType.UPDATE)
	void updateBasicInfo(Patient patient);

	/**
	 * 患者分页查询
	 *
	 * @param patientPageQueryDTO
	 * @return
	 */
	Page<PatientPageQueryVO> pageQuery(PatientPageQueryDTO patientPageQueryDTO);

	/**
	 * 全字段检索分页查询
	 *
	 * @param patientPageQueryDTO
	 * @return
	 */
	Page<PatientPageQueryVO> retrievalPageQuery(PatientPageQueryDTO patientPageQueryDTO);


	/**
	 * 查询每月录入人数
	 *
	 * @param year 统计年份
	 * @return 每月录入人数数据
	 */
	List<Integer> getMonthlyData(int year);
}
